console.log("1utils66");

// var testFun=new Function('a', 'return window'); 

// var testW=testFun("0");

// console.log("1utils660");

var utils = {
  merge: function (array1, array2) {
    if (array2.length < 5e4) Array.prototype.push.apply(array1, array2);
    else
      for (var ii = 0, iilen = array2.length; ii < iilen; ii += 1) array1.push(array2[ii]);
  },
  extend: function (dst, objs) {
    dst || (dst = {});
    // return utils.extendObjs(dst, Array.prototype.slice.call(arguments, 1));
    return utils.extendObjs(dst, [objs]);
  },
  extend2: function (dst, obj1, obj2) {
    dst || (dst = {});
    // return utils.extendObjs(dst, Array.prototype.slice.call(arguments, 1));
    return utils.extendObjs(dst, [obj1, obj2]);
  },
  inherit: function (child, parent) {
    function Ctor() {
      this.constructor = child;
    }
    for (var key in parent) parent.hasOwnProperty(key) && (child[key] = parent[key]);
    Ctor.prototype = parent.prototype;
    child.prototype = new Ctor();
    child.__super__ = parent.prototype;
    return child;
  },
  extendObjs: function (dst, objs) {
    dst || (dst = {});
    for (var i = 0, len = objs.length; i < len; i++) {
      var source = objs[i];
      if (source)
        for (var prop in source) source.hasOwnProperty(prop) && (dst[prop] = source[prop]);
    }
    return dst;
  }
};

return {
  "utils": utils
}